﻿// C++_And_MySQL.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
using namespace std;

class Box
{
public:
    static int objectCount;
    Box(double l = 2.0, double b = 2.0, double h = 2.0)
    {   // 这里是构造函数
        cout << "Constructor called." << endl;
        length  = l;
        breadth = b;
        height  = h;
        objectCount++;
    }
    double Volume()
    {
        return length * breadth * height;
    }

private:
    double length;
    double breadth;
    double height;
};   // 注意这里有一个;号

int Box::objectCount = 0;   // 使用范围解析运算符
int main()
{
    Box Box1(3.0, 1.0, 1.0);
    Box Box2;
    cout << "Box1::Volume:" << Box1.Volume() << endl;
    cout << "Box2::Volume:" << Box2.Volume() << endl;
    cout << "Total objects: " << Box::objectCount << endl;

    return 0;
}

// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单

// 入门使用技巧:
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5.
//   转到“项目”>“添加新项”以创建新的代码文件，或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来，若要再次打开此项目，请转到“文件”>“打开”>“项目”并选择 .sln 文件

/**
 * -ansi	只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色， 例如 asm 或 typeof 关键词。
 * -c	只编译并生成目标文件。 就是obj文件，相当于只编译不链接
 * -DMACRO	以字符串"1"定义 MACRO 宏
 * DMACRO=DEFN	以字符串"DEFN"定义 MACRO 宏
 * -E	只运行 C 预编译器。
 * -g	生成调试信息。GNU 调试器可利用该信息
 * -IDIRECTORY	指定额外的头文件搜索路径DIRECTORY。
 * -LDIRECTORY	指定额外的函数库搜索路径DIRECTORY。
 * -lLIBRARY	连接时搜索指定的函数库LIBRARY。
 * -m486	针对 486 进行代码优化。
 * o	FILE 生成指定的输出文件。用在生成可执行文件时。
 * -O0	不进行优化处理。
 * -O	或 -O1 优化生成代码。
 * O2	进一步优化。
 * -O3	比 -O2 更进一步优化，包括 inline 函数
 * -shared	生成共享目标文件。通常用在建立共享库时
 * -static	禁止使用共享连接。
 * UMACRO	取消对 MACRO 宏的定义。
 * w	不生成任何警告信息。
 * -Wall	生成所有警告信息。
 */
